package com.todo.strategy.offline.infrastructure.repository;


import com.todo.strategy.offline.infrastructure.entity.po.PlanRelationPO;

import java.util.List;

/**
 * (PlanRelation)表服务接口
 *
 * @author zhangwenxiang
 * @since 2024-03-04 21:10:04
 */
public interface PlanRelationRepository {

    /**
     * 根据主键id更新清单计划关联信息
     *
     * @param planRelationPO
     * @return
     */
    Boolean updatePlanRelationPOById(PlanRelationPO planRelationPO);

    /**
     * 根据主键id删除清单计划关联信息
     *
     * @param id
     * @return
     */
    Boolean removePlanRelationPOById(Long id);

    /**
     * 根据主键id查询清单计划关联信息
     *
     * @param id
     * @return
     */
    PlanRelationPO queryPlanRelationPOById(Long id);

    /**
     * 根据计划Id查询清单计划关联信息列表
     *
     * @param businessId
     * @return
     */
    List<PlanRelationPO> queryPlanRelationListByBizId(Long businessId, Integer scene);

    /**
     * 新增清单计划关联信息
     *
     * @param planRelationPO
     * @return
     */
    Boolean insertPlanRelationPO(PlanRelationPO planRelationPO);

    /**
     * 根据业务Id删除对应id列表关联数据
     *
     * @param businessId
     * @param businessScene
     * @param idList
     * @return
     */
    Boolean removePlanRelationByIdList(Long businessId, Integer businessScene, List<Long> idList);

    /**
     * 根据业务Id删除对应列表关联数据
     *
     * @param businessId
     * @param type
     * @return
     */
    Boolean removePlanRelationByBizId(Long businessId, Integer type);

    /**
     * 批量新增关联数据
     *
     * @param planRelationPOList
     * @return
     */
    Boolean insertPlanRelationList(List<PlanRelationPO> planRelationPOList);
}
